JavaScript 是一门弱语言,也可以说它是比较松散的,它在声明变量时无需确定变量的类型,JavaScript在运行时会自动判断。那么如何判断一个变量的类型呢,JavaScript 提供了 typeof 运算符,用来检测一个变量的类型。
typeof的语法
typeof是一个运算符,有2种使用方式:typeof(表达式) 和 typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。
typeof的返回值
typeof运算符的返回类型为字符串,值包括如下几种:
1. “undefined” --未定义的变量或值
2. “Boolean” --布尔类型的变量或值
3. “string” --字符串类型的变量或值
4. “number” --数字类型的变量或值
5. “object” --对象类型的变量或值,或者null(这个是js历史遗留问题,将null作为object类型处理)
6. “function” --函数类型的变量或值
7. “symbol” --ES6引入的新类型,表示独一无二的值
8. “bigint” --ES11引入的新类型,表示任意精度整数
以下是几个简单的示例:
请注意,以上第10行是ES6新增的数据类型,第11行是ES11新增的数据类型,都需要在各自支持的浏览器中才可以获得正常的结果。
不过从以上这几个例子说明,typeof操作符的操作数可以是变量,也可以是字面量。而且值得注意一点的是typeof是一个操作符,并不是一个函数,因此例子中的圆括号可以使用也可以不使用,这个不是必须的。
不过在有些时候,typeof操作符会返回一些令人迷惑,有一些争议的值。比如调用 typeof null,返回“object”,因为特殊值null被认为是一个空的对象引用造成的,这个现象在技术是正确的。当然还有一些其他现象,比如Safari5及之前的版本、Chrome7及之前的版本对正则表达式调用typeof操作符时会返回“function”,而其他浏览器在这种情况下会返回“object”。
本文原创,未经作者允许不可转载!
更多内容,欢迎关注作者微信公众号: 李游Leo老师前端讲堂!
暂无评论
违反法律法规
侵犯个人权益
有害网站环境